package com.xbongbong.pro.domain.dao;

import com.xbongbong.pro.domain.entity.SearchCustomerUserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @Author shian
 * @create 2019-08-07 11:22
 * @Description
 */
@Repository
@Mapper
public interface SearchCustomerUserDao {

    /**
     * 根据条件查找搜客的权限管理
     * @param param
     * @return java.util.List<com.xbongbong.pro.domain.entity.SearchCustomerUserEntity>
     * @author 石安
     * @date 2019-08-07
     */
    List<SearchCustomerUserEntity> findEntitys(@Param("param") Map<String, Object> param);

    /**
     * 插入数据
     * @param searchCustomerUserEntity
     * @return void
     * @author 石安
     * @date 2019-08-08
     */
    int insert(SearchCustomerUserEntity searchCustomerUserEntity);
    /**
     * 批量插入数据
     * @param searchCustomerUserEntityList
     * @return void
     * @author 石安
     * @date 2019-08-08
     */
    int batchInsert(List<SearchCustomerUserEntity> searchCustomerUserEntityList);

    /**
     * 修改数据
     * @param searchCustomerUserEntity
     * @return void
     * @author 石安
     * @date 2019-08-08
     */
    int update(SearchCustomerUserEntity searchCustomerUserEntity);

    /**
     * 统计套餐内使用总人数
     * @param param
     * @return java.lang.Integer
     * @author 石安
     * @date 2019-08-27
     */
    int getEntitysCount(@Param("param") Map<String, Object> param);

    /**
     * 修改搜客管理员权限
     * @param entity
     * @return void
     * @author 石安
     * @date 2019-08-08
     */
    void updateAdmin(SearchCustomerUserEntity entity);

    /**
     * 修改搜客员工使用权限
     * @param entity
     * @return void
     * @author 石安
     * @date 2019-08-08
     */
    void updateStaff(SearchCustomerUserEntity entity);

    /**
     * 使用userId与corpid查找对象
     * @param userId
     * @param corpid
     * @return com.xbongbong.pro.domain.entity.SearchCustomerUserEntity
     * @author 石安
     * @date 2019-08-08
     */
    SearchCustomerUserEntity getByKey(@Param("key") String userId, @Param("corpid") String corpid);

    /**
     * 获取已被注册的数量
     * @param param
     * @return int
     * @author 石安
     * @date 2019-09-16
     */
    int getRegisterCount(@Param("param") Map<String, Object> param);

    /**
     * 获取被解绑的用户(不是坐席)
     * @param param
     * @return java.util.List<com.xbongbong.pro.domain.entity.SearchCustomerUserEntity>
     * @author 石安
     * @date 2019-09-16
     */
    List<SearchCustomerUserEntity> getUnBindInfo(@Param("param") Map<String, Object> param);
}
